Traditionally, a technique has been disclosed, which is to execute a read-modify-write process in order to write, in storage in which only address ranges that are divisible by a predetermined value are accessible, unaligned data with an address range indivisible by the predetermined value. Storage that has a storage region to be used for the read-modify-write process has been disclosed.
As a related technique, another technique has been disclosed, which is to synthesize data stored in subsectors within a buffer memory before the read-modify-write process and convert the synthesized data into data in a format for long sectors in a data storage device. Another technique has been disclosed, which is to measure a processing speed in a case where the read-modify-write process is executed mainly by a host controller and a processing speed in a case where the read-modify-write process is executed mainly by a medium controller and execute the read-modify-write process mainly by a controller of which the measured processing speed is higher. As related art, Japanese Laid-open Patent Publication No. 2013-157068, Japanese Laid-open Patent Publication No. 2010-33396, and the like have been disclosed.
According to the related techniques, however, when a higher-level device with respect to storage such as a hard disk drive (HDD) causes the storage to execute the read-modify-write process, the performance of responding to a request to write unaligned data may be reduced. For example, if a storage region to be used for the read-modify-write process does not include an available region, and the read-modify-write process is executed by storage, the performance of responding to a request to write unaligned data is reduced. It is, therefore, desirable to suppress a reduction in the performance of responding to a request to write unaligned data.